package com.ruoyi.mobile.project.pms.service;

import com.ruoyi.db.pms.domain.PmsGoodsProduct;
import com.ruoyi.db.pms.mapper.PmsGoodsProductMapper;
import com.ruoyi.db.pms.mapper.WxGoodsProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class WxPmsGoodsProductService
{
    @Autowired
    private PmsGoodsProductMapper goodsProductMapper;

    @Autowired
    private WxGoodsProductMapper wxgoodsProductMapper;

    /**
     * 获取商品库存列表
     *
     * @author 张涛
     * @param gid
     * @return
     */
    public List<PmsGoodsProduct> queryByGid(Long gid)
    {
        return goodsProductMapper.selectPmsGoodsProductByPid(gid);
    }

    /**
     * 根据productId获取商品库存列表
     *
     * @author 严方亚
     * @date 2020-05-22
     * @param id
     */
    public PmsGoodsProduct findById(Long id)
    {
        return goodsProductMapper.selectPmsGoodsProductById(id);
    }

    /**
     * 删除商品
     *
     * @author 张涛
     * @param id
     */
    public void deleteById(Long id)
    {
        goodsProductMapper.deletePmsGoodsProductById(id);
    }

    /**
     * 添加商品库存
     *
     * @author 张涛
     * @param goodsProduct
     */
    public void add(PmsGoodsProduct goodsProduct)
    {
        goodsProduct.setAddTime(LocalDateTime.now());
        goodsProduct.setUpdateTime(LocalDateTime.now());
        goodsProductMapper.insertPmsGoodsProduct(goodsProduct);
    }

    /**
     * 获取所有商品数量
     *
     * @author 张涛
     * @return
     */
    public int count()
    {
        return goodsProductMapper.countProduct();
    }

    public void deleteByGid(Long gid)
    {

    }

    /**
     * 商品库存恢复
     *
     * @author 严方亚
     * @date 2020-05-13
     * @param id
     * @param num 商品数量
     */
    public int addStock(Long id, Integer num)
    {
        return wxgoodsProductMapper.addStock(id, num);
    }

    /**
     * 商品库存减少
     *
     * @author 张涛
     * @param id
     * @param num
     * @return
     */
    public int reduceStock(Long id, Integer num)
    {
        return wxgoodsProductMapper.reduceStock(id,num);
    }

    /**
     * 修改商品库存
     *
     * @author 张涛
     * @param product
     */
    public void updateById(PmsGoodsProduct product)
    {
        product.setUpdateTime(LocalDateTime.now());
        goodsProductMapper.updatePmsGoodsProduct(product);
    }
}
